!> test for checksum
module test_seakeeping_checksum

    use testdrive, only: new_unittest, unittest_type, error_type, check
    use seakeeping_module, only: adler32
    implicit none

    private
    public :: collect_checksum

contains

    subroutine collect_checksum(testsuite)
        type(unittest_type), intent(out), allocatable :: testsuite(:)

        allocate (testsuite, source=[new_unittest('adler32', test_adler32)])

    end subroutine collect_checksum

    subroutine test_adler32(error)
        type(error_type), intent(out), allocatable :: error

        call check(error, adler32('123456789'), 152961502)

    end subroutine test_adler32

end module test_seakeeping_checksum
